import { PlayerBase } from './PlayerBase.js'
import { MyPlayer } from './MyPlayer.js'
import { FoePlayer } from './FoePlayer.js'
import { AIPlayer } from './AIPlayer.js'

/**
 * 玩家类，根据角色类型返回相应的玩家实例
 * 这是一个工厂类，用于创建不同类型的玩家
 */
export class PlayerFactory {
    /**
     * 创建玩家实例的静态工厂方法
     * @param {GameMapBase} gameMap - 游戏地图类
     * @param {{}} info - 玩家信息(包含role属性)
     * @returns {PlayerBase} - 返回相应类型的玩家实例
     */
    static createPlayer(gameMap, info) {
        switch (info.role) {
            case 'me':
                return new MyPlayer(gameMap, info)
            case 'foe':
                return new FoePlayer(gameMap, info)
            case 'AI':
                return new AIPlayer(gameMap, info)
            default:
                console.warn('未知的玩家角色类型:', info.role)
                return new PlayerBase(gameMap, info)
        }
    }
}

// 导出所有玩家类，方便直接引用
export { PlayerBase }
export { MyPlayer }
export { FoePlayer }
export { AIPlayer }
